The present invention is in the area of visualizations in computer graphical user interfaces (GUIs), including those using hypertext markup language (HTML). It can be used in applications that visualize huge amounts of data on a computer's display, while providing a user the ability to scroll in the data to impact a displayed portion of the data. The data can be arranged in one or more dimensions.
Visualizations are software components (software components are also called controls or widgets) used in GUIs to display data, emphasizing some aspects of the data and de-emphasizing other aspects. Visualizations allow data presentation in a perspective that is meaningful for the users, whether these are presenters of the data, or consumers. In the case of “big data”, a user may have a need to zoom in on a small portion of the data. Data may be presented in a data grid (spreadsheets, lists, tables) along row, column, page, and possibly further coordinates, or in an image along x and y pixel coordinates, in a Gantt chart or other chart, in a graph, or in any other visualization format known in the art.
Visualizations may be pre-compiled as software components in a particular software development environment, or they may be generated on-the-fly, such as in a web page or other HTML-related document, potentially using an interpreted language such as JavaScript.
When creating a visualization for big data, developers may run into limitations presented by a target GUI. For example, it is not practical to show a full spreadsheet of a million rows and a million columns on a computer display. Such as spreadsheet would have one trillion cells, but a contemporary 8K display has only 7,680×4,320=33,177,600 pixels. The problem gets much worse for a spreadsheet that would have, for example, each a trillion rows and columns.
Visualizations in a web browser or multi-platform app—often implemented in HTML and JavaScript—run into various limitations from the browser itself, or the utilized browser control, for example related to the maximum canvas size of a display element, the maximum size of an internally used integer, or the maximum memory available. Further limitations are presented by the scrolling capabilities of HTML Document Object Model (DOM) elements.
To address this problem, developers have relied on virtual browsing, or virtualizing canvases, to display data subsets. Some developers display part of a data series, and fetch more data when a user scrolls towards its end. However, these approaches have not provided their users great scrolling capabilities or shielded them sufficiently from the aforementioned browser limitation issues.